package red.stu.pconstraint.dto.mapper.token;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.jetbrains.annotations.Nullable;

/**
 * 跳转流程 <br/>
 *     - 可任意跳转流程，不受限制
 * @author yihrmc @stu.red
 * @date 2019/11/15 9:43
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class GotoExpression extends BlockExpression {

    public static final String TYPE = "call";

    /**
     * 跳转到的流程分支ID <br/>
     *  - 如果为空，则默认'当前分支'
     */
    private String branchId;

    /**
     * 跳转到的流程分支的指定节点ID <br/>
     *  - 如果为空，则默认流程分支的第一个节点 或到下一个流程
     */
    @Nullable
    private String nodeId;

    /**
     * 跳转到流程节点 并指定触发状态
     */
    @Nullable
    private String stateName;

    public GotoExpression() {
        super(TYPE);
    }
}
